using System.Collections;
using System.Collections.Generic;
using Cysharp.Threading.Tasks;
using UnityEngine;

namespace M13.Game.Entity.FSM
{
    public class StateBase :IState
    {
        public string StateName { get; protected set; }
        public UniTask AnimPlayTask { get; protected set; }
        public virtual void Enter() { }
        public virtual void Exit() { }
        public virtual void Update() { }
        public virtual void FixedUpdate() { }
        public virtual bool TryEnter() { return false; }
        public virtual bool TryExit() { return false; }
        public virtual void OnDrawGizmos() { }
        public virtual string GetStateName() { return StateName; }
        public virtual string GetAnimName() { return StateName; }
        public virtual UniTask GetAnimPlayTask(){ return AnimPlayTask; }
        public virtual float GetAnimPlayProgress() { return 0f; }
        public virtual bool IsCurrentAnimPlaying(string animName) { return false;  }
    }
}